using JTZY.Model.Order.Dto;
using JTZY.Model.Order;
using Newtonsoft.Json.Linq;
using JTZY.Model.Product;

namespace JTZY.Service.Order.IOrderService
{
    /// <summary>
    /// 退货单表service接口
    /// </summary>
    public interface ICorecmsbillaftersalesService : IBaseService<Corecmsbillaftersales>
    {
        PagedInfo<CorecmsbillaftersalesDto> GetList(CorecmsbillaftersalesQueryDto parm);

        Corecmsbillaftersales GetInfo(string AftersalesId);


        Corecmsbillaftersales AddCorecmsbillaftersales(Corecmsbillaftersales parm);


        PagedInfo<CorecmsbillaftersalesExDto> ExportList(CorecmsbillaftersalesQueryDto parm);
        WebApiCallBack OrderToAftersales(string orderId, int aftersaleLevel);
        Task<WebApiCallBack> ToAdd(long userId, string orderId, int type, JArray items, string[] images, string reason, decimal refund, string sourceType, string reMethod, string retReasons);
        WebApiCallBack CancelAfterSales(Corecmsbillaftersales model);
        WebApiCallBack NoAuditAfterSales(Corecmsbillaftersales model);
        Task<WebApiCallBack> Audit(string aftersalesId, int status, int type, decimal refund, string mark,
            JArray items);
        Task<WebApiCallBack> Take(Corecmsbillaftersales modal, long userId);
        Task<WebApiCallBack> Ship(Corecmsbillaftersales modal, long userId);
        WebApiCallBack Pack(OrderPackDto modal);
        PagedInfo<AfterProdDto> GetAfterStockList(AfterStockQueryDto parm);
        Task<WebApiCallBack> Refund(Corecmsbillaftersales modal, long userId);
        Task<WebApiCallBack> ToAddUn(long userId, int type, List<Corecmsbillaftersalesitem> items, string[] imgs, string reason, decimal refund, string sourceType,List<Prodinfo> details);
    }
}
